diff --git a/Demo/Makefile.am b/Demo/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Demo/Makefile.am
@@ -0,0 +1,22 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+LDADD = $(top_builddir)/Source/librbio.la $(SUITESPARSECONFIG_LIBS)
+
+EXTRA_DIST = \
+	RBdemo.out
+
+# Disable the .out implicit pattern rule.  Prevents GNU make from
+# adding bogus dependencies for the .out files listed above.
+%.out: %
+
+check_PROGRAMS = \
+	RBdemo
+
+RBdemo_SOURCES = RBdemo.c
+
+RB = \
+	$(top_srcdir)/RBio/private/west0479.rua
+
+check-local: $(check_PROGRAMS) $(RB)
+	./RBdemo < $(top_srcdir)/RBio/private/west0479.rua
+
+CLEANFILES = temp.rb
diff --git a/Include/Makefile.am b/Include/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Include/Makefile.am
@@ -0,0 +1 @@
+pkginclude_HEADERS = RBio.h
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,5 @@
+SUBDIRS = Include Source RBio Demo Tcov
+EXTRA_DIST = README.txt Doc/ChangeLog Doc/License.txt Doc/gpl.txt
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = rbio.pc
diff --git a/RBio/Makefile.am b/RBio/Makefile.am
new file mode 100644
--- /dev/null
+++ b/RBio/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = private
+dist_noinst_DATA = \
+	mywest
diff --git a/RBio/private/Makefile.am b/RBio/private/Makefile.am
new file mode 100644
--- /dev/null
+++ b/RBio/private/Makefile.am
@@ -0,0 +1,7 @@
+dist_noinst_DATA = \
+	bcsstk01.rb \
+	farm.rb \
+	lap_25.pse \
+	lap_25.rb \
+	west0479.rb \
+	west0479.rua
diff --git a/Source/Makefile.am b/Source/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Source/Makefile.am
@@ -0,0 +1,18 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+RBIOSRC = \
+	RBio.c
+
+lib_LTLIBRARIES = librbio.la
+noinst_LTLIBRARIES = librbioi.la librbiol.la
+
+librbioi_la_SOURCES = $(RBIOSRC)
+librbioi_la_LIBADD = $(SUITESPARSECONFIG_LIBS)
+librbioi_la_CPPFLAGS = $(AM_CPPFLAGS) -DINT
+
+librbiol_la_SOURCES = $(RBIOSRC)
+librbiol_la_LIBADD = $(SUITESPARSECONFIG_LIBS)
+
+librbio_la_SOURCES =
+librbio_la_LIBADD = librbioi.la librbiol.la
+librbio_la_LDFLAGS = -no-undefined -release $(PACKAGE_VERSION)
diff --git a/Tcov/Makefile.am b/Tcov/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Tcov/Makefile.am
@@ -0,0 +1,92 @@
+AM_CC = gcc
+AM_CFLAGS = -O0 -g --coverage
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+LDADD = $(SUITESPARSECONFIG_LIBS)
+
+dist_noinst_DATA = \
+	matrices/Tina_DisCog.tar.gz \
+	matrices/dwg961a.tar.gz \
+	matrices/m4.rb \
+	matrices/m4b.rb \
+	matrices/mhd1280a.tar.gz \
+	matrices/mhd1280b.tar.gz \
+	matrices/plskz362.tar.gz \
+	matrices/qc324.tar.gz \
+	matrices/s4.rb \
+	matrices/west0067.tar.gz \
+	mangled/1.rb \
+	mangled/2.rb \
+	mangled/3.rb \
+	mangled/4.rb \
+	mangled/5.rb \
+	mangled/6.rb \
+	mangled/7.rb \
+	mangled/8.rb \
+	mangled/9.rb \
+	mangled/10.rb \
+	mangled/11.rb \
+	mangled/12.rb \
+	mangled/13.rb \
+	mangled/14.rb \
+	mangled/15.rb
+
+check_PROGRAMS = \
+	RBdemo \
+	RBtest
+
+RBdemo_SOURCES = $(top_srcdir)/Source/RBio.c $(top_srcdir)/Demo/RBdemo.c
+RBtest_SOURCES = $(top_srcdir)/Source/RBio.c RBtest.c
+
+TAR = tar -O -xvvzf
+
+RB = \
+	$(top_srcdir)/RBio/private/bcsstk01.rb \
+	$(top_srcdir)/RBio/private/farm.rb \
+	$(top_srcdir)/RBio/private/lap_25.pse \
+	$(top_srcdir)/RBio/private/lap_25.rb \
+	$(top_srcdir)/RBio/private/west0479.rb \
+	$(top_srcdir)/RBio/private/west0479.rua \
+	$(addprefix $(srcdir)/,$(dist_noinst_DATA))
+
+COV = \
+	$(top_srcdir)/Source/RBio.c \
+	$(top_srcdir)/Demo/RBdemo.c \
+	$(srcdir)/RBtest.c
+
+check-local: $(check_PROGRAMS) $(RB) $(COV)
+	-./RBdemo $(top_srcdir)/RBio/private/bcsstk01.rb
+	-./RBdemo $(top_srcdir)/RBio/private/farm.rb
+	-./RBdemo $(top_srcdir)/RBio/private/lap_25.pse
+	-./RBdemo $(top_srcdir)/RBio/private/lap_25.rb
+	-./RBdemo $(top_srcdir)/RBio/private/west0479.rb
+	-./RBdemo $(top_srcdir)/RBio/private/west0479.rua
+	-$(TAR) $(srcdir)/matrices/dwg961a.tar.gz  dwg961a/dwg961a.rb     | ./RBdemo
+	-$(TAR) $(srcdir)/matrices/mhd1280a.tar.gz mhd1280a/mhd1280a.rb   | ./RBdemo
+	-$(TAR) $(srcdir)/matrices/mhd1280b.tar.gz mhd1280b/mhd1280b.rb   | ./RBdemo
+	-$(TAR) $(srcdir)/matrices/qc324.tar.gz    qc324/qc324.rb         | ./RBdemo
+	-$(TAR) $(srcdir)/matrices/plskz362.tar.gz plskz362/plskz362.rb   | ./RBdemo
+	-$(TAR) $(srcdir)/matrices/west0067.tar.gz west0067/west0067.rb   | ./RBdemo
+	-$(TAR) $(srcdir)/matrices/Tina_DisCog.tar.gz Tina_DisCog/Tina_DisCog.rb | ./RBdemo
+	-./RBdemo $(srcdir)/matrices/m4.rb
+	-./RBdemo $(srcdir)/matrices/s4.rb
+	-./RBdemo $(srcdir)/matrices/m4b.rb
+	-./RBdemo $(srcdir)/mangled/1.rb
+	-./RBdemo $(srcdir)/mangled/2.rb
+	-./RBdemo $(srcdir)/mangled/3.rb
+	-./RBdemo $(srcdir)/mangled/4.rb
+	-./RBdemo $(srcdir)/mangled/5.rb
+	-./RBdemo $(srcdir)/mangled/6.rb
+	-./RBdemo $(srcdir)/mangled/7.rb
+	-./RBdemo $(srcdir)/mangled/8.rb
+	-./RBdemo $(srcdir)/mangled/9.rb
+	-./RBdemo $(srcdir)/mangled/10.rb
+	-./RBdemo $(srcdir)/mangled/11.rb
+	-./RBdemo $(srcdir)/mangled/12.rb
+	-./RBdemo $(srcdir)/mangled/13.rb
+	-./RBdemo $(srcdir)/mangled/14.rb
+	-./RBdemo $(srcdir)/mangled/15.rb
+	-./RBtest
+	-gcov -o $(builddir) $(COV) > gcov.out
+	-grep -c "#####" RBio.c.gcov
+
+CLEANFILES = gcov.out *.gcov *.gcda *.gcno temp*.rb
diff --git a/configure.ac b/configure.ac
new file mode 100644
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,41 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT([RBio],[2.2.1],[DrTimothyAldenDavis@gmail.com],[rbio],[http://www.suitesparse.com/])
+AC_CONFIG_SRCDIR([Source/RBio.c])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([foreign])
+LT_INIT
+
+# Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_CC
+
+LIBS_SAVED=$LIBS
+
+# Checks for libraries.
+PKG_PROG_PKG_CONFIG
+PKG_CHECK_MODULES([SUITESPARSECONFIG],[suitesparseconfig],
+	[],
+	[AC_MSG_ERROR([cannot find suitesparseconfig])])
+
+# Checks for header files.
+AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+
+# Checks for library functions.
+
+LIBS=$LIBS_SAVED
+
+AC_CONFIG_FILES([
+	rbio.pc
+	Makefile
+	Demo/Makefile
+	Include/Makefile
+	RBio/Makefile
+	RBio/private/Makefile
+	Source/Makefile
+	Tcov/Makefile])
+AC_OUTPUT
diff --git a/rbio.pc.in b/rbio.pc.in
new file mode 100644
--- /dev/null
+++ b/rbio.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: @PACKAGE_NAME@
+Description: Toolbox for reading/writing sparse matrices in Rutherford/Boeing format
+Version: @PACKAGE_VERSION@
+URL: @PACKAGE_URL@
+Requires.private: suitesparseconfig
+Libs: -L${libdir} -lrbio
+Cflags: -I${includedir}/rbio
